#include <iostream>
using namespace std;
class Date
{
    //友元函数声明
    friend ostream& operator<<(ostream& out, const Date& d);
    friend istream& operator>>(istream& in, Date& d);
    public:
    // 构造函数
    Date (int year , int month,int day);
    // 重载+=运算符
    Date& operator+= (int days);
    // 重载-=运算符
    Date& operator-= (int days);
    // 后置++运算符重载
    Date& operator++ (int);
    // 前置++运算符重载
    Date& operator++ ();
    // ==运算符重载
    bool operator== (const Date&d);
    // !=运算符重载
    bool operator!= (const Date&d);
    // >运算符重载
    bool operator> (const Date&d);
    // <运算符重载
    bool operator< (const Date&d);
    // >=运算符重载
    bool operator>= (const Date&d);
    // <=运算符重载
    bool operator<= (const Date&d);
    //检查日期是否合法
    bool CheckDate();
    //打印日期
    void Print();
    private:
    int _year;
    int _month;
    int _day;
};
ostream& operator<<(ostream& out, const Date& d);
istream& operator>>(istream& in, Date& d);
int Monthdays (int year,int Month);